Durability Semantics for Lock-based Multithreaded Programs

نویسندگان

  • Dhruva R. Chakrabarti
  • Hans-Juergen Boehm
چکیده

Non-volatile storage connected as memory (NVRAM) offers promising opportunities for simplifying and accelerating manipulation of persistent data. Load and store latency is potentially comparable to that of ordinary memory. The challenge is to ensure that the persisted data remains consistent if a failure occurs during execution, especially in a multithreaded programming environment. In this paper, we provide semantics for identifying a globally consistent state for a lock-based multithreaded program. We show how to conveniently ensure that programs are returned to such a globally consistent state after a crash. We discuss challenges and opportunities along the way, and explain why adding durability to transactional programs may be less expensive.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Deconstructing Transactional Semantics: The Subtleties of Atomicity

Researchers have recently proposed software and hardware support for transactions as a replacement for the traditional lock-based synchronization most common in multithreaded programs. Transactions allow the programmer to specify a region of the program that should appear to execute atomically, while the hardware and runtime system optimistically execute the transactions concurrently to obtain ...

متن کامل

The Case for Region Serializability

It is difficult to write correct multithreaded code. This difficulty is compounded by the weak memory model [1] provided to multithreaded applications running on commodity multicore hardware, where there is not an easily understood semantics for applications containing data races. For example, the DRF0 memory model only guarantees sequential consistency to data-race free programs [2], and while...

متن کامل

Memory model for multithreaded C++: August 2005 status update

The C++ Standard defines single-threaded program execution. Fundamentally, multithreaded execution requires a much more refined memory and execution model. C++ threading libraries are in the awkward situation of specifying (implicitly or explicitly) an extended memory model for C++ in order to specify program execution. We have been working on integrating a memory model suitable for multithread...

متن کامل

Context-Bounded Analysis of Multithreaded Programs with Dynamic Linked Structures

Bounded context switch reachability analysis is a useful and efficient approach for detecting bugs in multithreaded programs. In this paper, we address the application of this approach to the analysis of multithreaded programs with procedure calls and dynamic linked structures. We define a program semantics based on concurrent pushdown systems with visible heaps as stack symbols. A visible heap...

متن کامل

Abstraction and Verification of Properties of a Real-Time Java

ion and Verification of Properties of a Real-Time Java Nadezhda Baklanova and Martin Strecker IRIT (Institut de Recherche en Informatique de Toulouse) Université de Toulouse 118 route de Narbonne, F-31062 Toulouse CEDEX 9, France [email protected], [email protected] Abstract. We present a tool for analysing resource sharing conflicts in multithreaded Java programs. Java programs ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2013